package controler.algorithms.ghsom;

import java.util.LinkedList;
/** 
 * @file INeuron.java  
 * 
 **/

/**
 *    Interfejs neuronu.
 *  
 *  Interfejs, ktory jest implementowany przez siec neuronowa. Zawiera podstawowe metody potrzebne do dzialania sieci.
 */
public interface INeuron {
	void adaptWeights(double[] di,double dist,double learnrate,double neighbourhood);
	double calcDist(double[] di);
	void calcMQE();
	void addRepresentingDataItem(double[] di);
	int representsMultiDataItems();
	NeuronLayer getMap();
	void addMap(Neuron sn,double MQE,int level,int sizeX,int sizeY,int posX,int posY);
	void addMap(LinkedList<double[]> dataItems,double MQE,int level,int sizeX,int SizeY,int posX,int posY);
	void addMap(Neuron sn,double MQE,int level,int posX,int posY,double[] ULweight, double[] URweight, double[] LLweight, double[] LRweight);
	LinkedList<double[]> getRepresentingDataItems();
	void clearRepresentingDataItems();
}
